//{ "allowAliases": "in-unions" }
// primitives
type Foo = 'a' | 'b';

type Foo = string | string[];

type Foo = `a-${number}` | `b-${number}`;

// reference types
interface Bar {}
class Baz implements Bar {}

type Foo = Bar | Baz;

type Foo = 'a' | 'b';

type Foo = 'a' | 'b' | 'c';

type Foo = 1 | 2;

type Foo = 1 | 2 | 3;

type Foo = `a-${number}` | `b-${number}`;

type Foo = `a-${number}` | `b-${number}` | `c-${number}`;

type Foo = true | false;

interface Bar {}
type Foo = Bar | string;

type Foo = string | string[];

type Foo = string | string[] | number;

type Foo = typeof bar | typeof baz;

type Foo = typeof bar | typeof import('foo');